import paramiko


def getSSHClientByPem(sftp_host, sftp_port, sftp_username, pem_file):
    # 使用 paramiko 创建 SSH 客户端
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    ssh.connect(sftp_host, port=sftp_port, username=sftp_username, key_filename=pem_file)
    # 允许连接不在known_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    return ssh


def getSSHClientByPassword(sftp_host, sftp_port, sftp_username, sftp_password):
    # 使用 paramiko 创建 SSH 客户端
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    ssh.connect(sftp_host, port=sftp_port, username=sftp_username, password=sftp_password)
    # 允许连接不在known_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    return ssh


def getSSHClientByPemAndPassword(sftp_host, sftp_port, sftp_username, pem_file, sftp_password):
    # 使用 paramiko 创建 SSH 客户端
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    ssh.connect(sftp_host, port=sftp_port, username=sftp_username, key_filename=pem_file, password=sftp_password)
    # 允许连接不在known_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    return ssh
